/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.informet.ipd.modelo.dao;

import com.informet.ipd.modelo.vo.CearVO;
import com.informet.ipd.modelo.vo.CrecerConDeporteVO;
import com.informet.ipd.modelo.vo.ProgEstrVO;
import com.informet.ipd.modelo.vo.ProyectosInversionVO;
import com.informet.ipd.modelo.vo.RolUsuarioVO;
import com.informet.ipd.modelo.vo.TalentoVO;
import com.informet.ipd.modelo.vo.UbigeoVO;
import com.informet.ipd.modelo.vo.UsuarioVO;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author LAPTOP01
 */
public class CearAlumnoMPDao extends DBase{

DecimalFormat formateador = new DecimalFormat("####,####");
  Connection conn = null;

    public CearAlumnoMPDao() {
        super();
    }

     public void  setListMarcaPersonal(CearVO bean, ResultSet rs) throws SQLException{
          bean.setCodPrueba(rs.getString("NUM_CODPRUEBA_PK"));
          bean.setDescPrueba(rs.getString("TX_DESCPRUEBA"));
          bean.setCodMarca(rs.getString("NUM_CODMARCA_PK"));
          bean.setDescMarca(rs.getString("NUM_VALORMARCA"));
          bean.setCodAlumno(rs.getString("NUM_CODALUMCEAR_PK"));
          bean.setCodCear(rs.getString("NUM_CEAR_PK"));
    }
     
     public List getlistMarcapersonal(String idPerfil,String codAlumno,String codPrueba) throws SQLException {

        Statement stmt = null;
        ResultSet rs = null;
        ArrayList<CearVO> lista = new ArrayList<CearVO>(0);
        //List lista=null;
        //lista=null;
        String sql = "";
        try {
            conn = DriverManager.getConnection(url, usuario, password);
            stmt = conn.createStatement();
            sql =   " select "+
                    " * "+
                    " from me_marcacear m inner join me_alumnoscear a on m.NUM_CODALUMCEAR_PK=a.NUM_CODALUMCEAR_PK "+
                                       " inner join me_pruebacear p on m.NUM_CODPRUEBA_PK=p.NUM_CODPRUEBA_PK "+
                    " where a.NUM_CODALUMCEAR_PK= "+codAlumno;
            if(idPerfil!=null)
                sql=sql+"  and num_codperfil_pk="+idPerfil;

            if(!codPrueba.equals("-1"))
                sql=sql+"  and m.NUM_CODPRUEBA_PK="+codPrueba;

            rs = stmt.executeQuery(sql);
            CearVO bean = null;
            while (rs.next()) {
                bean = new CearVO();
               setListMarcaPersonal(bean, rs);

               lista.add(bean);

            }

        } finally {
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }

        }
        return lista;
    }


      public String spMan(String codMarca,String codPrueba,String descMarca,String tipoOper,String codAlumno) {
        String msj = "";
        //String codP=bean.getCodPrograma();
        try {
        	
            conn = DriverManager.getConnection(url, usuario, password);
            CallableStatement cs = conn.prepareCall("{call Man_UPDATE_CEARALUMNOMMARCAPERSONAL(?,?,?,?,?)}");
            //codActividad, codAnio, titu_programa,justificacion,fechaInicio, fechaFin,monto
            cs.setString(1, codMarca);
            cs.setString(2, codPrueba);
            cs.setString(3, descMarca);
            cs.setString(4, tipoOper);
            cs.setString(5, codAlumno);
            cs.execute();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.toString());
            msj = e.toString();
            return msj;
        }
        return msj;
    }

////Ini Expectativas
////Ini Expectativas
////Ini Expectativas

    public void  setListExpectativa(CearVO bean, ResultSet rs) throws SQLException{
          bean.setDescEvento(rs.getString("TX_EVENTO"));
          bean.setDescPrueba(rs.getString("TX_PRUEBA"));
          bean.setFechaExpectativa(rs.getString("DT_FECHAEXP1"));
          bean.setCodMarca(rs.getString("NUM_CODEXPECTATIVACEAR_PK"));
          bean.setCodAlumno(rs.getString("NUM_CODALUMCEAR_PK"));
          bean.setDescMarca(rs.getString("NUM_MARCAEXPECTATIVA"));
    }

     public List getlistExpectativa(String idPerfil,String codAlumno,String descEvento,String descPrueba) throws SQLException {

        Statement stmt = null;
        ResultSet rs = null;
        ArrayList<CearVO> lista = new ArrayList<CearVO>(0);
        //List lista=null;
        //lista=null;
        String sql = "";
        try {
            conn = DriverManager.getConnection(url, usuario, password);
            stmt = conn.createStatement();
            sql =   " select " +
                    " isnull(convert(varchar,DT_FECHAEXP,103),'') as DT_FECHAEXP1, "+

                    " * "+
                    " from me_expectativacear e inner join me_alumnoscear a on a.NUM_CODALUMCEAR_PK=e.NUM_CODALUMCEAR_PK "+
                    " where a.NUM_CODALUMCEAR_PK="+codAlumno;
            
                    if(!descEvento.equals(""))
                        sql=sql+"           and TX_EVENTO like '%"+descEvento+"%'";

                    if(!descPrueba.equals(""))
                        sql=sql+"           and TX_PRUEBA like '%"+descPrueba+"%'";
            

            if(idPerfil!=null)
                sql=sql+"  and num_codperfil_pk="+idPerfil;

            

            rs = stmt.executeQuery(sql);
            CearVO bean = null;
            while (rs.next()) {
                bean = new CearVO();
               setListExpectativa(bean, rs);

               lista.add(bean);

            }

        } finally {
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }

        }
        return lista;
    }


      public String spManE(String descEvento,String descPrueba,String descMarca,String fecha,String tipoOper,String codAlumno,String codExpectativaCear) {
        String msj = "";
        //String codP=bean.getCodPrograma();
        try {

            conn = DriverManager.getConnection(url, usuario, password);
            CallableStatement cs = conn.prepareCall("{call Man_UPDATE_CEARALUMNOMEXPECTATIVA(?,?,?,?,?,?,?)}");
            //codActividad, codAnio, titu_programa,justificacion,fechaInicio, fechaFin,monto
            cs.setString(1, descEvento);
            cs.setString(2, descPrueba);
            cs.setString(3, descMarca);
            cs.setString(4, tipoOper);
            cs.setString(5, codAlumno);
            cs.setString(6, fecha);
            cs.setString(7, codExpectativaCear);
            cs.execute();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.toString());
            msj = e.toString();
            return msj;
        }
        return msj;
    }


      ///Ini Resultado
      ///Ini Resultado
      ///Ini Resultado
      ///Ini Resultado
      ///Ini Resultado
      ///Ini Resultado


        public void  setListResultados(CearVO bean, ResultSet rs) throws SQLException{
          bean.setDescEvento(rs.getString("TX_EVENTO"));
          bean.setDescPrueba(rs.getString("TX_PRUEBA"));
          bean.setFechaExpectativa(rs.getString("DT_FECHAEXP"));
          bean.setCodExpectativa(rs.getString("NUM_CODEXPECTATIVACEAR_PK"));
          bean.setCodAlumno(rs.getString("NUM_CODALUMCEAR_PK"));
          bean.setDescMarca(rs.getString("NUM_MARCAEXPECTATIVA"));
          
          bean.setFecresultado(rs.getString("DT_FECHARES"));
          bean.setMarcaNacional(rs.getString("NUM_MARCANACIONAL"));
          bean.setRecordNacional(rs.getString("NUM_RECORDNACIONAL"));
          bean.setRankingSudamericano(rs.getString("NUM_RANKINGSUDAMERICANO"));
          bean.setCodPermanencia(rs.getString("NUM_CODPERMANENCIA"));
          //bean.setCodcausaRet(rs.getString("NUM_CODCAUSARET_PK"));
          bean.setCodEtiqueta(rs.getString("NUM_CODCAUSARETIRO_PK"));
          bean.setCodResultado(rs.getString("NUM_CODRESULTADOCEAR_PK"));
          bean.setCodtrimestre(rs.getString("NUM_CODTRIMESTRE"));

          if(bean.getCodtrimestre().equals("1"))
              bean.setDescTrimestre("Primer Trimestre");

          if(bean.getCodtrimestre().equals("2"))
              bean.setDescTrimestre("Segundo Trimestre");

          if(bean.getCodtrimestre().equals("3"))
              bean.setDescTrimestre("Tercer Trimestre");

          if(bean.getCodtrimestre().equals("4"))
              bean.setDescTrimestre("Cuarto Trimestre");

          if(bean.getCodtrimestre().equals("0") ||bean.getCodtrimestre().equals(""))
              bean.setDescTrimestre("");

          
          bean.setMarcaresultado(rs.getString("NUM_MARCARESULTADO"));

          bean.setNumCumplimiento(formateador.format(new Double(rs.getString("NUM_CUMPLIMIENTO"))));
          bean.setDescLugar(rs.getString("TX_LUGAR"));
          bean.setNumRankingFdn(rs.getString("NUM_RANKINGFDN"));

          bean.setDescCausaRet(rs.getString("descCausaRet"));
          bean.setNumCalificacion(rs.getString("num_calificacion"));
          


    }

     public List getlistResultados(String idPerfil,String codAlumno,String descEvento,String descPrueba) throws SQLException {

        Statement stmt = null;
        ResultSet rs = null;
        ArrayList<CearVO> lista = new ArrayList<CearVO>(0);
        //List lista=null;
        //lista=null;
        String sql = "";
        try {
            conn = DriverManager.getConnection(url, usuario, password);
            stmt = conn.createStatement();
            sql =   " select " +
                    
                    " isnull(convert(varchar,DT_FECHARES,103),'') as DT_FECHARES, " +
                    " isnull(convert(varchar,DT_FECHAEXP,103),'') as DT_FECHAEXP, " +
                    " isnull( NUM_MARCANACIONAL,'')as NUM_MARCANACIONAL , " +
                    " isnull( NUM_RECORDNACIONAL,'') as NUM_RECORDNACIONAL, " +
                    " isnull( NUM_RANKINGSUDAMERICANO,'') as NUM_RANKINGSUDAMERICANO, " +
                    " isnull( NUM_CODPERMANENCIA,'') as NUM_CODPERMANENCIA, " +
                    " isnull( NUM_CODCAUSARETIRO_PK,'')as NUM_CODCAUSARETIRO_PK, " +
                    " isnull( NUM_CODRESULTADOCEAR_PK,'') as NUM_CODRESULTADOCEAR_PK, " +                    
                    " isnull( NUM_CODTRIMESTRE,'')as NUM_CODTRIMESTRE, " +
                    " isnull( NUM_MARCARESULTADO,'') as NUM_MARCARESULTADO, " +

                    " (isnull(NUM_MARCARESULTADO,0)/isnull(NUM_MARCAEXPECTATIVA,1)) as NUM_CUMPLIMIENTO, " +
                    " (isnull(NUM_RANKINGFDN,'')) as NUM_RANKINGFDN, " +
                    " (isnull(tx_lugar,'')) as TX_LUGAR, " +

                    " isnull((select TX_DESCCAUSARET from me_causaretcear  where NUM_CODCAUSARET_PK=a.NUM_CODCAUSARETIRO_PK),'') as descCausaRet, " +

                    " isnull(num_calificacion,'') as num_calificacion, " +
                    
                    " * " +
                    " from  me_expectativacear e left outer join me_resultadocear r on e.NUM_CODEXPECTATIVACEAR_PK=r.NUM_CODEXPECTATIVACEAR_PK "+
						      " inner join me_alumnoscear a on a.NUM_CODALUMCEAR_PK=e.NUM_CODALUMCEAR_PK "+
                    " where a.NUM_CODALUMCEAR_PK= "+codAlumno;


                    if(!descEvento.equals(""))
                        sql=sql+"           and e.TX_EVENTO like '%"+descEvento+"%'";

                    if(!descPrueba.equals(""))
                        sql=sql+"           and e.TX_PRUEBA like '%"+descPrueba+"%'";


            if(idPerfil!=null)
                sql=sql+"  and num_codperfil_pk="+idPerfil;

            sql=sql+" order by r.NUM_CODTRIMESTRE desc ";

            


            rs = stmt.executeQuery(sql);
            CearVO bean = null;
            while (rs.next()) {
                bean = new CearVO();
               setListResultados(bean, rs);

               lista.add(bean);

            }

        } finally {
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }

        }
        return lista;
    }

      public String spManR(String fecha,String txtLugar,
                           String txtMarcaNacional,
                           String txtRecordNacional,String txtRankingSudamericano,
                           String codPermanencia,String codRetiro,
                           String codTrimestre,String txtMarca,
                           String tipoOper,String txtRankingFdn,
                           String codExpectativaCear,
                           String txtCalificacion
                           ) {
        String msj = "";
        try {
            conn = DriverManager.getConnection(url, usuario, password);//Man_UPDATE_CEARALUMNOMONITOREO
            CallableStatement cs = conn.prepareCall("{call Man_UPDATE_CEARALUMNOMONITOREOC(?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            cs.setString(1, fecha );
            cs.setString(2, txtLugar);
            cs.setString(3, txtMarcaNacional);
            cs.setString(4, txtRecordNacional);
            cs.setString(5, txtRankingSudamericano);
            cs.setString(6, codPermanencia);
            cs.setString(7, codRetiro);

            cs.setString(8, codTrimestre);
            cs.setString(9, txtMarca);
            cs.setString(10, codExpectativaCear);
            cs.setString(11,tipoOper);
            cs.setString(12,txtRankingFdn);
            cs.setString(13,txtCalificacion);
            cs.execute();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.toString());
            msj = e.toString();
            return msj;
        }
        return msj;
    }

////// Ini agregado para las permanencias

    public void  setCausaRetiro(CearVO bean, ResultSet rs) throws SQLException{

           bean.setCodEtiqueta(rs.getString("NUM_CODcausaret_PK"));
           bean.setDescEtiqueta(rs.getString("tx_desccausaret"));
         //bean.setCodcausaRet(rs.getString("NUM_CODcausaret_PK"));
         //  bean.setDescCausaRet(rs.getString("tx_desccausaret"));


    }

    public List getListCausaRetiro(String id,String trimestre)  throws SQLException {
        Statement stmt = null;
        ResultSet rs = null;
        ArrayList<CearVO> lista = new ArrayList<CearVO>(0);

        String sql = "";
        try {
            conn = DriverManager.getConnection(url, usuario, password);
            stmt = conn.createStatement();

                sql = "  select * from me_causaretcear ";

            rs = stmt.executeQuery(sql);
            CearVO bean = null;
            while (rs.next()) {
                bean = new CearVO();
                setCausaRetiro(bean,rs);
                lista.add(bean);
            }

        } finally {
            if (rs != null) {
                rs.close();
                rs = null;
            }
            if (stmt != null) {
                stmt.close();
                stmt = null;
            }
            if (conn != null) {
                conn.close();
                conn = null;
            }

        }
        return lista;
    }

     public String spManCausaRetiro(String codEtiqueta,String nombEtiqueta,String tipoOper) {
        String msj = "";
        //String codP=bean.getCodPrograma();
        try {

            conn = DriverManager.getConnection(url, usuario, password);
            CallableStatement cs = conn.prepareCall("{call Man_update_MeCausaRetCear(?,?,?)}");
            //codActividad, codAnio, titu_programa,justificacion,fechaInicio, fechaFin,monto
            cs.setString(1, codEtiqueta);
            cs.setString(2, nombEtiqueta);
            cs.setString(3, tipoOper);
            cs.execute();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.toString());
            msj = e.toString();
            return msj;
        }
        return msj;
    }
/////////
     public String spManPermanencia(String codAlumno,String codEtiqueta) {
        String msj = "";
        //String codP=bean.getCodPrograma();
        try {

            conn = DriverManager.getConnection(url, usuario, password);
            CallableStatement cs = conn.prepareCall("{call Man_UPDATE_CEARALUMNOCAUSARETIRO(?,?)}");
            //codActividad, codAnio, titu_programa,justificacion,fechaInicio, fechaFin,monto
            cs.setString(1, codAlumno);
            cs.setString(2, codEtiqueta);
            cs.execute();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.toString());
            msj = e.toString();
            return msj;
        }
        return msj;
    }

}
